package br.com.projeto.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity
public class Usuario implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	public static final String DESCRICAO = "DESCRICAO";
	public static final String ESTADO_CIVIL = "ESTADO_CIVIL";
	public static final String ANIVERSARIO = "ANIVERSARIO";
	public static final String CIDADE = "CIDADE";

	@Id
	@GeneratedValue
	private long id;
	private String nome;
	private String login;
	private String senha;
	private String descricao;
	private String estadoCivil;
	private String aniversario;
	private String cidade;

	@OneToMany(mappedBy = "seguidores", cascade = CascadeType.ALL)
	private List<Usuario> seguidores = new ArrayList<Usuario>();

	@OneToMany(mappedBy = "seguidos", cascade = CascadeType.ALL)
	private List<Usuario> seguidos = new ArrayList<Usuario>();

	public Usuario() {
	}

	public Usuario(String nome, String login, String senha) {
		this.nome = nome;
		this.login = login;
		this.senha = senha;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public String getEstadoCivil() {
		return estadoCivil;
	}

	public void setEstadoCivil(String estadoCivil) {
		this.estadoCivil = estadoCivil;
	}

	public String getAniversario() {
		return aniversario;
	}

	public void setAniversario(String aniversario) {
		this.aniversario = aniversario;
	}

	public String getCidade() {
		return cidade;
	}

	public void setCidade(String cidade) {
		this.cidade = cidade;
	}

	public long getId() {
		return 1;
	}

	public void setId(long id) {
		this.id = id;
	}

	public void addSeguidor(Usuario user) {
		this.seguidores.add(user);

	}

	public List<Usuario> getSeguidores() {
		return seguidores;
	}

	public void setSeguidores(List<Usuario> seguidores) {
		this.seguidores = seguidores;
	}

	public List<Usuario> getSeguidos() {
		return seguidos;
	}

	public void setSeguidos(List<Usuario> seguidos) {
		this.seguidos = seguidos;
	}

	public String toString() {
		return this.nome + " - " + this.login;
	}

}
